/**
 * 随机生成一个用户
 * 姓名、身份证号、手机号均由下面方法随机生成
 * 解析手机号及身份证号得到相关信息
 */
function suiJiYongHu(id) {
	var yongHu = {};
	//id
	yongHu.id = id;
	//姓名
	yongHu.xm = suiJiXingMing();
	//身份证号
	yongHu.sfzh = suiJiShenFenZhengHao();
	//手机号
	yongHu.sjh = suiJiShouJiHao();
	var sf = jieXiShenFenZhengHao(yongHu.sfzh);
	//地址（省份）
	yongHu.dz = sf.diZhi;
	//生日，格式如：1990-01-01
	yongHu.sr = sf.shengRi;
	//性别
	yongHu.xb = sf.xingBie;
	//手机号的运营商
	yongHu.yys = shouJiYunYingShang(yongHu.sjh);
	return yongHu;
}

Date.prototype.Format = function(fmt) {
	var o = {
		"M+": this.getMonth() + 1, //月份 
		"d+": this.getDate(), //日 
		"h+": this.getHours(), //小时 
		"m+": this.getMinutes(), //分 
		"s+": this.getSeconds(), //秒 
		"q+": Math.floor((this.getMonth() + 3) / 3), //季度 
		"S": this.getMilliseconds() //毫秒 
	};
	if(/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
	for(var k in o)
		if(new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
	return fmt;
}

/**
 * 根据均值和标准差按正态分布随机给一个数
 * 
 * @param 均值 loc
 * @param 标准差 loc
 */
function randomNormal() {
	var loc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.0;
	var scale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1.0;

	var s = -6.0;
	for(var i = 0; i < 12; i++) {
		s += Math.random();
	}
	return loc + s * scale;
}

/**
 * 损失函数
 * 
 * @param 一维数组 theta
 * @param 矩阵 X
 * @param 一维数组 y
 */
function J(theta, X, y, yhat) {
	var s = 0.0;
	for(var i = 0; i < X.length; i++) {
		s += Math.pow(y[i] - yhat(theta, X[i]), 2);
	}
	return s / X.length;
}

/**
 * 损失函数的梯度
 */
function dJ(theta, X, y, yhat) {
	var dt = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1e-8;

	var g = [];
	var j0 = J(theta, X, y, yhat);
	for(var i = 0; i < theta.length; i++) {
		var t = theta.slice();
		t[i] = theta[i] + dt;
		g[i] = (J(t, X, y, yhat) - j0) / dt;
	}
	return g;
}

/**
 * 梯度下降法求解theta
 * 
 * @param 初始theta initialTheta
 * @param 矩阵 X
 * @param 数组 y
 * @param y的估计值函数 yhat
 * @param 学习率 eta
 * @param 最大循环次数 n
 */
function gradientDescent(initialTheta, X, y, yhat, eta) {
	var n = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
	var epsilon = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 1e-8;
	var dt = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1e-8;

	var theta = initialTheta.slice();
	var k = 0;
	while(n == 0 || k < n) {
		var g = dJ(theta, X, y, yhat, dt);
		var s = 0.0;
		for(var i = 0; i < theta.length; i++) {
			theta[i] = theta[i] - eta * g[i];
			s += Math.abs(g[i]);
		}
		if(s < epsilon) {
			break;
		}
		k++;
	}
	return theta;
}

/**
 * 幂率分布的概率分布函数
 * 其中x>=1, n>0
 */
function F(x, n) {
	return 1 - 1 / Math.pow(x, n);
}

/**
 * y的估计值
 * 这里只针对当前使用场景，损失函数及梯度下降法均是通用的
 * 
 * @param 一维数组 theta
 * @param 一维数组 x
 */
function yhat(theta, x) {
	return F(1 + x[0] * theta[1], theta[0]);
}

/**
 * 求解随机姓氏的参数theta
 */
function xingShiTheta() {
	var X = [];
	var y = [];
	X[0] = [1];
	y[0] = xingShiBiLi100[0] / 100;
	for(var i = 1; i < 100; i++) {
		X[i] = [i + 1];
		y[i] = xingShiBiLi100[i] / 100 + y[i - 1];
	}
	return gradientDescent([1, 1], X, y, yhat, 0.3);
}

/**
 * 从数组a中随机取出一个元素
 * 
 * @param 数组 a
 */
function suiJi(a) {
	return a[parseInt(Math.random() * a.length)];
}

/**
 * 随机生成一个汉字
 */
function suiJiHanZi() {
	return unescape('%u' + (parseInt(Math.random() * 20902) + 19968).toString(16));
}

/**
 * 姓氏按幂率分布取前300姓氏，如果超出300，则在百家姓中随机取出一个
 * 名字在2500常用字中随机取出一个，名字1个字和2个字的概率各50%
 * theta由上面xingShiTheta()方法求出
 */
function suiJiXingMing() {
	var theta = [0.7417, 0.1085];
	var xing = suiJiMiLv(xingShi300, suiJi(baiJiaXing), theta);
	return xing + suiJi(changYongZi) + (Math.random() < 0.5 ? '' : suiJi(changYongZi));
}

/**
 * 从数组a中按幂率分布随机取出一个元素
 * 参数为theta
 * 默认参数取第一个元素的概率为50%，取到前10个的概率为91%
 * 如果求出随机下标大于数组的长度，那么返回默认值d
 * 
 * @param 参数 theta
 * @param 数组 a
 * @param 默认返回值 d
 */
function suiJiMiLv(a, d) {
	var theta = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [1, 1];

	var y = (Math.pow(1 / (1 - Math.random()), 1 / theta[0]) - 1) / theta[1];
	return y < a.length ? a[parseInt(y)] : d;
}

/**
 * 默认各个手机号段均匀分布，后8位随机生成
 */
function suiJiShouJiHao() {
	return suiJi(shouJiHaoDuan) + ('0000000' + parseInt(Math.random() * 1e8)).slice(-8);
}

/**
 * 通过手机号的前三位判断运营商
 * 
 * @param 手机号 s
 */
function shouJiYunYingShang(s) {
	s += '';
	var n = shouJiHaoDuan.indexOf(s.substr(0, 3));
	if(n >= 0 && n <= 8) {
		return '中国电信';
	}
	if(n >= 9 && n <= 19) {
		return '中国联通';
	}
	if(n >= 20 && n <= 39) {
		return '中国移动';
	}
	return '未知';
}

/**
 * 根据各省的人口数，随机生成省行政区划代码前2位
 */
function suiJiShengHao() {
	var zong = 0;
	for(var i = 0; i < shengRenShu.length; i++) {
		zong += shengRenShu[i];
	}
	var y = Math.random() * zong;
	var s = 0;
	for(var i = 0; i < shengRenShu.length; i++) {
		s += shengRenShu[i];
		if(y <= s) {
			return shengHao[i];
		}
	}
}

/**
 * 随机生成身份证号
 */
function suiJiShenFenZhengHao() {
	var sfzh = '';
	//第1、2位表示省（自治区、直辖市、特别行政区）。这里按照各省的人口数比例取值
	sfzh += suiJiShengHao();
	//第3、4位表示市（地级市、自治州、盟及国家直辖市所属市辖区和县的汇总码）。这里按幂率分布取01-70
	var y = 1 / (1 - Math.random());
	sfzh += (y < 71 ? ('0' + parseInt(y)).slice(-2) : '01');
	//第5、6位表示县（市辖区、县级市、旗）。这里按幂率分布取01-99
	y = 1 / (1 - Math.random());
	sfzh += (y < 99 ? ('0' + parseInt(y)).slice(-2) : '01');
	//第7位到第14位表示编码对象出生的年、月、日。这里按正态分布取均值1990年，标准差5年的时间
	var shengRiTime = randomNormal(new Date('1990').getTime(), 5 * 365 * 86400 * 1000);
	if(shengRiTime > new Date().getTime()) {
		shengRiTime = new Date('1990').getTime();
	}
	var shengRi = new Date(shengRiTime).Format('yyyyMMdd');
	sfzh += shengRi;
	//第15、16位表示派出所代码。这里随机取00-99
	sfzh += ('0' + parseInt(Math.random() * 1e2)).slice(-2);
	//第17位表示性别，奇数分给男性，偶数分给女性。这里男女概率相等，按幂率分布从小到大取数
	var xingBies = [
		[1, 3, 5, 7, 9],
		[2, 4, 6, 8, 0]
	];
	var xingBie = xingBies[parseInt(Math.random() * 2)];
	sfzh += suiJiMiLv(xingBie, xingBie[0]);
	//第18位表示校验码，计算如下：
	var xiShu = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
	var s18 = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
	var sShuZu = sfzh.split('');
	var s = 0;
	for(var i = 0; i < sfzh.length; i++) {
		s += xiShu[i] * sShuZu[i];
	}
	sfzh += s18[s % 11];
	return sfzh;
}

/**
 * 通过身份证号解析出
 * 所在省份、出生年月日、性别
 * 
 * @param 身份证号 sfzh
 */
function jieXiShenFenZhengHao(sfzh) {
	sfzh += '';
	var sf = {};
	if(sfzh.length < 18) {
		return sf;
	}
	sf.diZhi = shengMing[shengHao.indexOf(sfzh.substr(0, 2))];
	sf.shengRi = sfzh.substr(6, 4) + '-' + sfzh.substr(10, 2) + '-' + sfzh.substr(12, 2);
	sf.xingBie = sfzh.substr(16, 1) % 2 ? '男' : '女';
	return sf;
}

/**
 * 将数组转换成字符串
 * 可以在html页面上以js认识的格式展现
 * 
 * @param 数组 a
 * @param 每行的个数 n
 */
function shuZuZiFuChuan(a, n) {
	var s = '';
	for(var i = 0; i < a.length; i++) {
		if(i % n == 0) {
			s += '<br />';
		}
		s += "'" + a[i] + "', ";
	}
	return s;
}

/**
 * 以下所有数据来自百度，注释“全国”主要代指内地
 */
/**
 * 百家姓
 */
var baiJiaXing = [
	'赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许',
	'何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章',
	'云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳',
	'酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常',
	'乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹',
	'姚', '邵', '湛', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞',
	'熊', '纪', '舒', '屈', '项', '祝', '董', '梁', '杜', '阮', '蓝', '闵', '席', '季', '麻', '强', '贾', '路', '娄', '危',
	'江', '童', '颜', '郭', '梅', '盛', '林', '刁', '钟', '徐', '邱', '骆', '高', '夏', '蔡', '田', '樊', '胡', '凌', '霍',
	'虞', '万', '支', '柯', '昝', '管', '卢', '莫', '经', '房', '裘', '缪', '干', '解', '应', '宗', '丁', '宣', '贲', '邓',
	'郁', '单', '杭', '洪', '包', '诸', '左', '石', '崔', '吉', '钮', '龚', '程', '嵇', '邢', '滑', '裴', '陆', '荣', '翁',
	'荀', '羊', '於', '惠', '甄', '麴', '家', '封', '芮', '羿', '储', '靳', '汲', '邴', '糜', '松', '井', '段', '富', '巫',
	'乌', '焦', '巴', '弓', '牧', '隗', '山', '谷', '车', '侯', '宓', '蓬', '全', '郗', '班', '仰', '秋', '仲', '伊', '宫',
	'宁', '仇', '栾', '暴', '甘', '钭', '厉', '戎', '祖', '武', '符', '刘', '景', '詹', '束', '龙', '叶', '幸', '司', '韶',
	'郜', '黎', '蓟', '薄', '印', '宿', '白', '怀', '蒲', '邰', '从', '鄂', '索', '咸', '籍', '赖', '卓', '蔺', '屠', '蒙',
	'池', '乔', '阴', '郁', '胥', '能', '苍', '双', '闻', '莘', '党', '翟', '谭', '贡', '劳', '逄', '姬', '申', '扶', '堵',
	'冉', '宰', '郦', '雍', '舄', '璩', '桑', '桂', '濮', '牛', '寿', '通', '边', '扈', '燕', '冀', '郏', '浦', '尚', '农',
	'温', '别', '庄', '晏', '柴', '瞿', '阎', '充', '慕', '连', '茹', '习', '宦', '艾', '鱼', '容', '向', '古', '易', '慎',
	'戈', '廖', '庾', '终', '暨', '居', '衡', '步', '都', '耿', '满', '弘', '匡', '国', '文', '寇', '广', '禄', '阙', '东',
	'殴', '殳', '沃', '利', '蔚', '越', '夔', '隆', '师', '巩', '厍', '聂', '晁', '勾', '敖', '融', '冷', '訾', '辛', '阚',
	'那', '简', '饶', '空', '曾', '毋', '沙', '乜', '养', '鞠', '须', '丰', '巢', '关', '蒯', '相', '查', '後', '荆', '红',
	'游', '竺', '权', '逯', '盖', '益', '桓', '公', '仉', '督', '晋', '楚', '闫', '法', '汝', '鄢', '涂', '钦', '归', '海',
	'岳', '帅', '缑', '亢', '况', '后', '有', '琴', '商', '牟', '佘', '佴', '伯', '赏', '墨', '哈', '谯', '笪', '年', '爱',
	'阳', '佟', '言', '福', '万俟', '司马', '上官', '欧阳', '夏侯', '诸葛', '闻人', '东方', '赫连', '皇甫', '尉迟', '公羊', '澹台', '公冶', '宗政', '濮阳',
	'淳于', '单于', '太叔', '申屠', '公孙', '仲孙', '轩辕', '令狐', '钟离', '宇文', '长孙', '慕容', '鲜于', '闾丘', '司徒', '司空', '亓官', '司寇', '子车', '颛孙',
	'端木', '巫马', '公西', '漆雕', '乐正', '壤驷', '公良', '拓跋', '夹谷', '宰父', '谷梁', '段干', '百里', '东郭', '南门', '呼延', '羊舌', '微生', '梁丘', '左丘',
	'东门', '西门', '南宫', '第五'
];

/**
 * 2500个常用字
 */
var changYongZi = [
	'一', '乙', '二', '十', '丁', '厂', '七', '卜', '人', '入', '八', '九', '几', '儿', '了', '力', '乃', '刀', '又', '三', '于', '干', '亏', '士', '工', '土', '才', '寸', '下', '大', '丈', '与', '万', '上', '小', '口', '巾', '山', '千', '乞', '川', '亿', '个', '勺', '久', '凡', '及', '夕', '丸', '么',
	'广', '亡', '门', '义', '之', '尸', '弓', '己', '已', '子', '卫', '也', '女', '飞', '刃', '习', '叉', '马', '乡', '丰', '王', '井', '开', '夫', '天', '无', '元', '专', '云', '扎', '艺', '木', '五', '支', '厅', '不', '太', '犬', '区', '历', '尤', '友', '匹', '车', '巨', '牙', '屯', '比', '互', '切',
	'瓦', '止', '少', '日', '中', '冈', '贝', '内', '水', '见', '午', '牛', '手', '毛', '气', '升', '长', '仁', '什', '片', '仆', '化', '仇', '币', '仍', '仅', '斤', '爪', '反', '介', '父', '从', '今', '凶', '分', '乏', '公', '仓', '月', '氏', '勿', '欠', '风', '丹', '匀', '乌', '凤', '勾', '文', '六',
	'方', '火', '为', '斗', '忆', '订', '计', '户', '认', '心', '尺', '引', '丑', '巴', '孔', '队', '办', '以', '允', '予', '劝', '双', '书', '幻', '玉', '刊', '示', '末', '未', '击', '打', '巧', '正', '扑', '扒', '功', '扔', '去', '甘', '世', '古', '节', '本', '术', '汇', '头', '汉', '宁', '穴', '它',
	'讨', '写', '让', '礼', '训', '必', '议', '讯', '记', '永', '司', '尼', '民', '出', '汁', '丙', '左', '厉', '右', '石', '布', '龙', '平', '灭', '轧', '东', '卡', '北', '占', '业', '旧', '帅', '归', '且', '旦', '目', '叶', '甲', '申', '叮', '电', '号', '田', '由', '史', '只', '央', '兄', '叼', '叫',
	'另', '叨', '叹', '四', '生', '失', '禾', '丘', '付', '仗', '代', '仙', '们', '仪', '白', '仔', '他', '斥', '瓜', '乎', '丛', '令', '用', '甩', '印', '乐', '句', '匆', '册', '犯', '外', '处', '冬', '鸟', '务', '包', '饥', '主', '市', '立', '闪', '兰', '半', '辽', '奶', '奴', '加', '召', '皮', '边',
	'发', '孕', '圣', '对', '台', '矛', '纠', '母', '幼', '丝', '可', '式', '刑', '动', '扛', '寺', '吉', '扣', '考', '托', '老', '执', '巩', '圾', '扩', '扫', '地', '扬', '场', '耳', '共', '芒', '亚', '芝', '朽', '朴', '机', '权', '过', '臣', '再', '协', '西', '压', '厌', '在', '有', '百', '存', '而',
	'页', '匠', '夸', '夺', '灰', '达', '列', '死', '成', '夹', '轨', '邪', '划', '迈', '毕', '至', '此', '贞', '师', '尘', '尖', '劣', '光', '当', '早', '吐', '吓', '虫', '曲', '团', '同', '吊', '吃', '因', '吸', '吗', '屿', '帆', '岁', '回', '岂', '刚', '则', '肉', '网', '年', '朱', '先', '丢', '舌',
	'竹', '迁', '乔', '伟', '传', '乒', '乓', '休', '伍', '伏', '优', '伐', '延', '件', '任', '伤', '价', '份', '华', '仰', '仿', '伙', '伪', '自', '血', '向', '似', '后', '行', '舟', '全', '会', '杀', '合', '兆', '企', '众', '爷', '伞', '创', '肌', '朵', '杂', '危', '旬', '旨', '负', '各', '名', '多',
	'争', '色', '壮', '冲', '冰', '庄', '庆', '亦', '刘', '齐', '交', '次', '衣', '产', '决', '充', '妄', '闭', '问', '闯', '羊', '并', '关', '米', '灯', '州', '汗', '污', '江', '池', '汤', '忙', '兴', '宇', '守', '宅', '字', '安', '讲', '军', '许', '论', '农', '讽', '设', '访', '寻', '那', '迅', '尽',
	'导', '异', '孙', '阵', '阳', '收', '阶', '阴', '防', '奸', '如', '妇', '好', '她', '妈', '戏', '羽', '观', '欢', '买', '红', '纤', '级', '约', '纪', '驰', '巡', '寿', '弄', '麦', '形', '进', '戒', '吞', '远', '违', '运', '扶', '抚', '坛', '技', '坏', '扰', '拒', '找', '批', '扯', '址', '走', '抄',
	'坝', '贡', '攻', '赤', '折', '抓', '扮', '抢', '孝', '均', '抛', '投', '坟', '抗', '坑', '坊', '抖', '护', '壳', '志', '扭', '块', '声', '把', '报', '却', '劫', '芽', '花', '芹', '芬', '苍', '芳', '严', '芦', '劳', '克', '苏', '杆', '杠', '杜', '材', '村', '杏', '极', '李', '杨', '求', '更', '束',
	'豆', '两', '丽', '医', '辰', '励', '否', '还', '歼', '来', '连', '步', '坚', '旱', '盯', '呈', '时', '吴', '助', '县', '里', '呆', '园', '旷', '围', '呀', '吨', '足', '邮', '男', '困', '吵', '串', '员', '听', '吩', '吹', '呜', '吧', '吼', '别', '岗', '帐', '财', '针', '钉', '告', '我', '乱', '利',
	'秃', '秀', '私', '每', '兵', '估', '体', '何', '但', '伸', '作', '伯', '伶', '佣', '低', '你', '住', '位', '伴', '身', '皂', '佛', '近', '彻', '役', '返', '余', '希', '坐', '谷', '妥', '含', '邻', '岔', '肝', '肚', '肠', '龟', '免', '狂', '犹', '角', '删', '条', '卵', '岛', '迎', '饭', '饮', '系',
	'言', '冻', '状', '亩', '况', '床', '库', '疗', '应', '冷', '这', '序', '辛', '弃', '冶', '忘', '闲', '间', '闷', '判', '灶', '灿', '弟', '汪', '沙', '汽', '沃', '泛', '沟', '没', '沈', '沉', '怀', '忧', '快', '完', '宋', '宏', '牢', '究', '穷', '灾', '良', '证', '启', '评', '补', '初', '社', '识',
	'诉', '诊', '词', '译', '君', '灵', '即', '层', '尿', '尾', '迟', '局', '改', '张', '忌', '际', '陆', '阿', '陈', '阻', '附', '妙', '妖', '妨', '努', '忍', '劲', '鸡', '驱', '纯', '纱', '纳', '纲', '驳', '纵', '纷', '纸', '纹', '纺', '驴', '纽', '奉', '玩', '环', '武', '青', '责', '现', '表', '规',
	'抹', '拢', '拔', '拣', '担', '坦', '押', '抽', '拐', '拖', '拍', '者', '顶', '拆', '拥', '抵', '拘', '势', '抱', '垃', '拉', '拦', '拌', '幸', '招', '坡', '披', '拨', '择', '抬', '其', '取', '苦', '若', '茂', '苹', '苗', '英', '范', '直', '茄', '茎', '茅', '林', '枝', '杯', '柜', '析', '板', '松',
	'枪', '构', '杰', '述', '枕', '丧', '或', '画', '卧', '事', '刺', '枣', '雨', '卖', '矿', '码', '厕', '奔', '奇', '奋', '态', '欧', '垄', '妻', '轰', '顷', '转', '斩', '轮', '软', '到', '非', '叔', '肯', '齿', '些', '虎', '虏', '肾', '贤', '尚', '旺', '具', '果', '味', '昆', '国', '昌', '畅', '明',
	'易', '昂', '典', '固', '忠', '咐', '呼', '鸣', '咏', '呢', '岸', '岩', '帖', '罗', '帜', '岭', '凯', '败', '贩', '购', '图', '钓', '制', '知', '垂', '牧', '物', '乖', '刮', '秆', '和', '季', '委', '佳', '侍', '供', '使', '例', '版', '侄', '侦', '侧', '凭', '侨', '佩', '货', '依', '的', '迫', '质',
	'欣', '征', '往', '爬', '彼', '径', '所', '舍', '金', '命', '斧', '爸', '采', '受', '乳', '贪', '念', '贫', '肤', '肺', '肢', '肿', '胀', '朋', '股', '肥', '服', '胁', '周', '昏', '鱼', '兔', '狐', '忽', '狗', '备', '饰', '饱', '饲', '变', '京', '享', '店', '夜', '庙', '府', '底', '剂', '郊', '废',
	'净', '盲', '放', '刻', '育', '闸', '闹', '郑', '券', '卷', '单', '炒', '炊', '炕', '炎', '炉', '沫', '浅', '法', '泄', '河', '沾', '泪', '油', '泊', '沿', '泡', '注', '泻', '泳', '泥', '沸', '波', '泼', '泽', '治', '怖', '性', '怕', '怜', '怪', '学', '宝', '宗', '定', '宜', '审', '宙', '官', '空',
	'帘', '实', '试', '郎', '诗', '肩', '房', '诚', '衬', '衫', '视', '话', '诞', '询', '该', '详', '建', '肃', '录', '隶', '居', '届', '刷', '屈', '弦', '承', '孟', '孤', '陕', '降', '限', '妹', '姑', '姐', '姓', '始', '驾', '参', '艰', '线', '练', '组', '细', '驶', '织', '终', '驻', '驼', '绍', '经',
	'贯', '奏', '春', '帮', '珍', '玻', '毒', '型', '挂', '封', '持', '项', '垮', '挎', '城', '挠', '政', '赴', '赵', '挡', '挺', '括', '拴', '拾', '挑', '指', '垫', '挣', '挤', '拼', '挖', '按', '挥', '挪', '某', '甚', '革', '荐', '巷', '带', '草', '茧', '茶', '荒', '茫', '荡', '荣', '故', '胡', '南',
	'药', '标', '枯', '柄', '栋', '相', '查', '柏', '柳', '柱', '柿', '栏', '树', '要', '咸', '威', '歪', '研', '砖', '厘', '厚', '砌', '砍', '面', '耐', '耍', '牵', '残', '殃', '轻', '鸦', '皆', '背', '战', '点', '临', '览', '竖', '省', '削', '尝', '是', '盼', '眨', '哄', '显', '哑', '冒', '映', '星',
	'昨', '畏', '趴', '胃', '贵', '界', '虹', '虾', '蚁', '思', '蚂', '虽', '品', '咽', '骂', '哗', '咱', '响', '哈', '咬', '咳', '哪', '炭', '峡', '罚', '贱', '贴', '骨', '钞', '钟', '钢', '钥', '钩', '卸', '缸', '拜', '看', '矩', '怎', '牲', '选', '适', '秒', '香', '种', '秋', '科', '重', '复', '竿',
	'段', '便', '俩', '贷', '顺', '修', '保', '促', '侮', '俭', '俗', '俘', '信', '皇', '泉', '鬼', '侵', '追', '俊', '盾', '待', '律', '很', '须', '叙', '剑', '逃', '食', '盆', '胆', '胜', '胞', '胖', '脉', '勉', '狭', '狮', '独', '狡', '狱', '狠', '贸', '怨', '急', '饶', '蚀', '饺', '饼', '弯', '将',
	'奖', '哀', '亭', '亮', '度', '迹', '庭', '疮', '疯', '疫', '疤', '姿', '亲', '音', '帝', '施', '闻', '阀', '阁', '差', '养', '美', '姜', '叛', '送', '类', '迷', '前', '首', '逆', '总', '炼', '炸', '炮', '烂', '剃', '洁', '洪', '洒', '浇', '浊', '洞', '测', '洗', '活', '派', '洽', '染', '济', '洋',
	'洲', '浑', '浓', '津', '恒', '恢', '恰', '恼', '恨', '举', '觉', '宣', '室', '宫', '宪', '突', '穿', '窃', '客', '冠', '语', '扁', '袄', '祖', '神', '祝', '误', '诱', '说', '诵', '垦', '退', '既', '屋', '昼', '费', '陡', '眉', '孩', '除', '险', '院', '娃', '姥', '姨', '姻', '娇', '怒', '架', '贺',
	'盈', '勇', '怠', '柔', '垒', '绑', '绒', '结', '绕', '骄', '绘', '给', '络', '骆', '绝', '绞', '统', '耕', '耗', '艳', '泰', '珠', '班', '素', '蚕', '顽', '盏', '匪', '捞', '栽', '捕', '振', '载', '赶', '起', '盐', '捎', '捏', '埋', '捉', '捆', '捐', '损', '都', '哲', '逝', '捡', '换', '挽', '热',
	'恐', '壶', '挨', '耻', '耽', '恭', '莲', '莫', '荷', '获', '晋', '恶', '真', '框', '桂', '档', '桐', '株', '桥', '桃', '格', '校', '核', '样', '根', '索', '哥', '速', '逗', '栗', '配', '翅', '辱', '唇', '夏', '础', '破', '原', '套', '逐', '烈', '殊', '顾', '轿', '较', '顿', '毙', '致', '柴', '桌',
	'虑', '监', '紧', '党', '晒', '眠', '晓', '鸭', '晃', '晌', '晕', '蚊', '哨', '哭', '恩', '唤', '啊', '唉', '罢', '峰', '圆', '贼', '贿', '钱', '钳', '钻', '铁', '铃', '铅', '缺', '氧', '特', '牺', '造', '乘', '敌', '秤', '租', '积', '秧', '秩', '称', '秘', '透', '笔', '笑', '笋', '债', '借', '值',
	'倚', '倾', '倒', '倘', '俱', '倡', '候', '俯', '倍', '倦', '健', '臭', '射', '躬', '息', '徒', '徐', '舰', '舱', '般', '航', '途', '拿', '爹', '爱', '颂', '翁', '脆', '脂', '胸', '胳', '脏', '胶', '脑', '狸', '狼', '逢', '留', '皱', '饿', '恋', '桨', '浆', '衰', '高', '席', '准', '座', '脊', '症',
	'病', '疾', '疼', '疲', '效', '离', '唐', '资', '凉', '站', '剖', '竞', '部', '旁', '旅', '畜', '阅', '羞', '瓶', '拳', '粉', '料', '益', '兼', '烤', '烘', '烦', '烧', '烛', '烟', '递', '涛', '浙', '涝', '酒', '涉', '消', '浩', '海', '涂', '浴', '浮', '流', '润', '浪', '浸', '涨', '烫', '涌', '悟',
	'悄', '悔', '悦', '害', '宽', '家', '宵', '宴', '宾', '窄', '容', '宰', '案', '请', '朗', '诸', '读', '扇', '袜', '袖', '袍', '被', '祥', '课', '谁', '调', '冤', '谅', '谈', '谊', '剥', '恳', '展', '剧', '屑', '弱', '陵', '陶', '陷', '陪', '娱', '娘', '通', '能', '难', '预', '桑', '绢', '绣', '验',
	'继', '球', '理', '捧', '堵', '描', '域', '掩', '捷', '排', '掉', '堆', '推', '掀', '授', '教', '掏', '掠', '培', '接', '控', '探', '据', '掘', '职', '基', '著', '勒', '黄', '萌', '萝', '菌', '菜', '萄', '菊', '萍', '菠', '营', '械', '梦', '梢', '梅', '检', '梳', '梯', '桶', '救', '副', '票', '戚',
	'爽', '聋', '袭', '盛', '雪', '辅', '辆', '虚', '雀', '堂', '常', '匙', '晨', '睁', '眯', '眼', '悬', '野', '啦', '晚', '啄', '距', '跃', '略', '蛇', '累', '唱', '患', '唯', '崖', '崭', '崇', '圈', '铜', '铲', '银', '甜', '梨', '犁', '移', '笨', '笼', '笛', '符', '第', '敏', '做', '袋', '悠', '偿',
	'偶', '偷', '您', '售', '停', '偏', '假', '得', '衔', '盘', '船', '斜', '盒', '鸽', '悉', '欲', '彩', '领', '脚', '脖', '脸', '脱', '象', '够', '猜', '猪', '猎', '猫', '猛', '馅', '馆', '凑', '减', '毫', '麻', '痒', '痕', '廊', '康', '庸', '鹿', '盗', '章', '竟', '商', '族', '旋', '望', '率', '着',
	'盖', '粘', '粗', '粒', '断', '剪', '兽', '清', '添', '淋', '淹', '渠', '渐', '混', '渔', '淘', '液', '淡', '深', '婆', '梁', '渗', '情', '惜', '惭', '悼', '惧', '惕', '惊', '惨', '惯', '寇', '寄', '宿', '窑', '密', '谋', '谎', '祸', '谜', '逮', '敢', '屠', '弹', '随', '蛋', '隆', '隐', '婚', '婶',
	'颈', '绩', '绪', '续', '骑', '绳', '维', '绵', '绸', '绿', '琴', '斑', '替', '款', '堪', '搭', '塔', '越', '趁', '趋', '超', '提', '堤', '博', '揭', '喜', '插', '揪', '搜', '煮', '援', '裁', '搁', '搂', '搅', '握', '揉', '斯', '期', '欺', '联', '散', '惹', '葬', '葛', '董', '葡', '敬', '葱', '落',
	'朝', '辜', '葵', '棒', '棋', '植', '森', '椅', '椒', '棵', '棍', '棉', '棚', '棕', '惠', '惑', '逼', '厨', '厦', '硬', '确', '雁', '殖', '裂', '雄', '暂', '雅', '辈', '悲', '紫', '辉', '敞', '赏', '掌', '晴', '暑', '最', '量', '喷', '晶', '喇', '遇', '喊', '景', '践', '跌', '跑', '遗', '蛙', '蛛',
	'蜓', '喝', '喂', '喘', '喉', '幅', '帽', '赌', '赔', '黑', '铸', '铺', '链', '销', '锁', '锄', '锅', '锈', '锋', '锐', '短', '智', '毯', '鹅', '剩', '稍', '程', '稀', '税', '筐', '等', '筑', '策', '筛', '筒', '答', '筋', '筝', '傲', '傅', '牌', '堡', '集', '焦', '傍', '储', '奥', '街', '惩', '御',
	'循', '艇', '舒', '番', '释', '禽', '腊', '脾', '腔', '鲁', '猾', '猴', '然', '馋', '装', '蛮', '就', '痛', '童', '阔', '善', '羡', '普', '粪', '尊', '道', '曾', '焰', '港', '湖', '渣', '湿', '温', '渴', '滑', '湾', '渡', '游', '滋', '溉', '愤', '慌', '惰', '愧', '愉', '慨', '割', '寒', '富', '窜',
	'窝', '窗', '遍', '裕', '裤', '裙', '谢', '谣', '谦', '属', '屡', '强', '粥', '疏', '隔', '隙', '絮', '嫂', '登', '缎', '缓', '编', '骗', '缘', '瑞', '魂', '肆', '摄', '摸', '填', '搏', '塌', '鼓', '摆', '携', '搬', '摇', '搞', '塘', '摊', '蒜', '勤', '鹊', '蓝', '墓', '幕', '蓬', '蓄', '蒙', '蒸',
	'献', '禁', '楚', '想', '槐', '榆', '楼', '概', '赖', '酬', '感', '碍', '碑', '碎', '碰', '碗', '碌', '雷', '零', '雾', '雹', '输', '督', '龄', '鉴', '睛', '睡', '睬', '鄙', '愚', '暖', '盟', '歇', '暗', '照', '跨', '跳', '跪', '路', '跟', '遣', '蛾', '蜂', '嗓', '置', '罪', '罩', '错', '锡', '锣',
	'锤', '锦', '键', '锯', '矮', '辞', '稠', '愁', '筹', '签', '简', '毁', '舅', '鼠', '催', '傻', '像', '躲', '微', '愈', '遥', '腰', '腥', '腹', '腾', '腿', '触', '解', '酱', '痰', '廉', '新', '韵', '意', '粮', '数', '煎', '塑', '慈', '煤', '煌', '满', '漠', '源', '滤', '滥', '滔', '溪', '溜', '滚',
	'滨', '粱', '滩', '慎', '誉', '塞', '谨', '福', '群', '殿', '辟', '障', '嫌', '嫁', '叠', '缝', '缠', '静', '碧', '璃', '墙', '撇', '嘉', '摧', '截', '誓', '境', '摘', '摔', '聚', '蔽', '慕', '暮', '蔑', '模', '榴', '榜', '榨', '歌', '遭', '酷', '酿', '酸', '磁', '愿', '需', '弊', '裳', '颗', '嗽',
	'蜻', '蜡', '蝇', '蜘', '赚', '锹', '锻', '舞', '稳', '算', '箩', '管', '僚', '鼻', '魄', '貌', '膜', '膊', '膀', '鲜', '疑', '馒', '裹', '敲', '豪', '膏', '遮', '腐', '瘦', '辣', '竭', '端', '旗', '精', '歉', '熄', '熔', '漆', '漂', '漫', '滴', '演', '漏', '慢', '寨', '赛', '察', '蜜', '谱', '嫩',
	'翠', '熊', '凳', '骡', '缩', '慧', '撕', '撒', '趣', '趟', '撑', '播', '撞', '撤', '增', '聪', '鞋', '蕉', '蔬', '横', '槽', '樱', '橡', '飘', '醋', '醉', '震', '霉', '瞒', '题', '暴', '瞎', '影', '踢', '踏', '踩', '踪', '蝶', '蝴', '嘱', '墨', '镇', '靠', '稻', '黎', '稿', '稼', '箱', '箭', '篇',
	'僵', '躺', '僻', '德', '艘', '膝', '膛', '熟', '摩', '颜', '毅', '糊', '遵', '潜', '潮', '懂', '额', '慰', '劈', '操', '燕', '薯', '薪', '薄', '颠', '橘', '整', '融', '醒', '餐', '嘴', '蹄', '器', '赠', '默', '镜', '赞', '篮', '邀', '衡', '膨', '雕', '磨', '凝', '辨', '辩', '糖', '糕', '燃', '澡',
	'激', '懒', '壁', '避', '缴', '戴', '擦', '鞠', '藏', '霜', '霞', '瞧', '蹈', '螺', '穗', '繁', '辫', '赢', '糟', '糠', '燥', '臂', '翼', '骤', '鞭', '覆', '蹦', '镰', '翻', '鹰', '警', '攀', '蹲', '颤', '瓣', '爆', '疆', '壤', '耀', '躁', '嚼', '嚷', '籍', '魔', '灌', '蠢', '霸', '露', '囊', '罐'
];

/**
 * 手机号段0-8为电信，9-19为联通，20-39为移动。其中1349为卫星通信，这里为了方便，也当做移动
 */
var shouJiHaoDuan = [
	'133', '149', '153', '173', '177', '180', '181', '189', '199',
	'130', '131', '132', '145', '155', '156', '166', '175', '176', '185', '186',
	'134', '135', '136', '137', '138', '139', '147', '150', '151', '152', '157', '158', '159', '178', '182', '183', '184', '187', '188', '198'
];

/**
 * 全国前100的姓氏占人口的百分比，由多到少排列
 */
var xingShiBiLi100 = [
	7.94, 7.41, 7.07, 5.38, 4.53, 3.08, 2.29, 2.23, 2.12, 2.05, 1.73, 1.52, 1.31, 1.26, 1.21, 1.18, 1.17, 1.15, 1.05, 0.86,
	0.84, 0.81, 0.78, 0.72, 0.68, 0.65, 0.64, 0.62, 0.61, 0.59, 0.57, 0.57, 0.54, 0.54, 0.54, 0.51, 0.50, 0.50, 0.49, 0.47,
	0.47, 0.47, 0.47, 0.46, 0.45, 0.42, 0.42, 0.42, 0.42, 0.41, 0.41, 0.41, 0.40, 0.39, 0.39, 0.38, 0.37, 0.37, 0.37, 0.36,
	0.36, 0.36, 0.35, 0.35, 0.34, 0.34, 0.33, 0.32, 0.32, 0.31, 0.30, 0.29, 0.29, 0.28, 0.28, 0.27, 0.27, 0.26, 0.26, 0.25,
	0.25, 0.25, 0.24, 0.24, 0.24, 0.24, 0.23, 0.23, 0.22, 0.19, 0.19, 0.19, 0.19, 0.18, 0.18, 0.18, 0.18, 0.18, 0.17, 0.17
];

/**
 * 全国前300的姓氏，由多到少排列
 */
var xingShi300 = [
	'李', '王', '张', '刘', '陈', '杨', '赵', '黄', '周', '吴', '徐', '孙', '胡', '朱', '高', '林', '何', '郭', '马', '罗',
	'梁', '宋', '郑', '谢', '韩', '唐', '冯', '于', '董', '萧', '程', '曹', '袁', '邓', '许', '傅', '沈', '曾', '彭', '吕',
	'苏', '卢', '蒋', '蔡', '贾', '丁', '魏', '薛', '叶', '阎', '余', '潘', '杜', '戴', '夏', '钟', '汪', '田', '任', '姜',
	'范', '方', '石', '姚', '谭', '廖', '邹', '熊', '金', '陆', '郝', '孔', '白', '崔', '康', '毛', '邱', '秦', '江', '史',
	'顾', '侯', '邵', '孟', '龙', '万', '段', '漕', '钱', '汤', '尹', '黎', '易', '常', '武', '乔', '贺', '赖', '龚', '文',
	'庞', '樊', '兰', '殷', '施', '陶', '洪', '翟', '安', '颜', '倪', '严', '牛', '温', '芦', '季', '俞', '章', '鲁', '葛',
	'伍', '韦', '申', '尤', '毕', '聂', '丛', '焦', '向', '柳', '邢', '路', '岳', '齐', '沿', '梅', '莫', '庄', '辛', '管',
	'祝', '左', '涂', '谷', '祁', '时', '舒', '耿', '牟', '卜', '路', '詹', '关', '苗', '凌', '费', '纪', '靳', '盛', '童',
	'欧', '甄', '项', '曲', '成', '游', '阳', '裴', '席', '卫', '查', '屈', '鲍', '位', '覃', '霍', '翁', '隋', '植', '甘',
	'景', '薄', '单', '包', '司', '柏', '宁', '柯', '阮', '桂', '闵', '欧阳', '解', '强', '柴', '华', '车', '冉', '房', '边',
	'辜', '吉', '饶', '刁', '瞿', '戚', '丘', '古', '米', '池', '滕', '晋', '苑', '邬', '臧', '畅', '宫', '来', '嵺', '苟',
	'全', '褚', '廉', '简', '娄', '盖', '符', '奚', '木', '穆', '党', '燕', '郎', '邸', '冀', '谈', '姬', '屠', '连', '郜',
	'晏', '栾', '郁', '商', '蒙', '计', '喻', '揭', '窦', '迟', '宇', '敖', '糜', '鄢', '冷', '卓', '花', '仇', '艾', '蓝',
	'都', '巩', '稽', '井', '练', '仲', '乐', '虞', '卞', '封', '竺', '冼', '原', '官', '衣', '楚', '佟', '栗', '匡', '宗',
	'应', '台', '巫', '鞠', '僧', '桑', '荆', '谌', '银', '扬', '明', '沙', '薄', '伏', '岑', '习', '胥', '保', '和', '蔺'
];

/**
 * 全国各省的行政区划代码前2位
 */
var shengHao = [
	'44', '37', '41', '51', '32', '13',
	'43', '34', '42', '33', '45', '53',
	'36', '21', '23', '61', '35', '14',
	'52', '50', '22', '62', '15', '71',
	'31', '65', '11', '12', '46', '81',
	'64', '63', '54', '82'
];

/**
 * 全国各省的名称
 */
var shengMing = [
	'广东省', '山东省', '河南省', '四川省', '江苏省', '河北省',
	'湖南省', '安徽省', '湖北省', '浙江省', '广西壮族自治区', '云南省',
	'江西省', '辽宁省', '黑龙江省', '陕西省', '福建省', '山西省',
	'贵州省', '重庆市', '吉林省', '甘肃省', '内蒙古自治区', '台湾地区',
	'上海市', '新疆维吾尔自治区', '北京市', '天津市', '海南省', '香港特别行政区',
	'宁夏回族自治区', '青海省', '西藏自治区', '澳门特别行政区'
];

/**
 * 2010年第六次全国人口普查各省人口排名，不包括现役军人以及难以确定常住地人数
 */
var shengRenShu = [
	104303132, 95793065, 94023567, 80418200, 78659903, 71854202,
	65683722, 59500510, 57237740, 54426891, 46026629, 45966239,
	44567475, 43746323, 38312224, 37327378, 36894216, 35712111,
	34746468, 28846170, 27462297, 25575254, 24706321, 23162123,
	23019148, 21813334, 19612368, 12938224, 8671518, 7097600,
	6301350, 5626722, 3002166, 552300
];